Friday, August 27, 2004

Friday meeting memo

1. with/without XML syntax
Is it a language with everything in XML or just to manipulate only XML data? For example, in CDL/BPEL/XLANG/WSFL, everything is XML, including data and the language itself. While in XQuery and XL languages (http://xl.in.tum.de/), the language syntax is independent of XML.2. Composition/specification of Web Services
Is it a language to compose or specify Web Services? The former one is programming in large and the latter programming in small. In BPEL, there is a trend to provide both functionalities by introducing Java or C# code snippet.

The Madhu paper proposes a factory service to build distributed applications. A distributed application consists of many XCAT components. A running instance of an XCAT component is a web service with uses-port and provides-port. This paper defines an XML language to describe the connections between components. Compared with WSFL/BPEL, this CCA based approach gets rid of the central flow engine. So, there is no need of extra effort to describe information exchange between components. This approach can be used complementarily with BPEL. The description of connections between components can work as an annotation to service partners in BPEL. Doing so will get benefit from both of them.3. Imperative/declarative programming
Imperative programming gives a list of instructions to execute in a particular order. Declarative programming describes a set of conditions and lets the computer figure out how to satisfy them. That is, imperative programming specifies “how” whereas declarative programming describes what is going to be done without specifying “how”. The annotation mechanism is a way to use declarative and imperative programming together. Annotation is used to associate declarative information (metadata) with imperative program elements such as classes, methods, fields, parameters, local variables and packages. Annotation is supported in JDK 1.5 and .NET Framework.

() How to deal with OOP stuff?
A C++ object can definitely be converted to XML. The problem is how to write the correspondent C code.

1. C is not an OOP programming language
If we use XML to describe an OOP program, we need some tags to represent Class. Then how can C understand such tags related to OOP stuff?

2. C has a Pointer type which is address-space-relative
How could XML to specify a Pointer?

Tuesday, August 24, 2004

remarks on WSCI

What is new in the XML?

XLang

Web Service Choreography Interface (WSCI) 1.0

http://www.w3.org/TR/wsci/

when used in a collaboration context, the objective of WSCI is to present the interface that a given Web Service exhibits in such a complex scenario, when it acts as one more more roles.

Each Web Service is considered a peer in the collaboration and, as such, exhibits its own interface as part of the collaboration.

Layer one-->Modelling Layers: Process/Collaboration definition
Layer two-->WSCI: Dynamic, Choreographed Web Service Interface
Layer three-->WSDL: Static Web Service Interface

WSCI: Activity:-Activity/Action
WSDL: Operation Type(portType):-Operation:-Input/output:-Message

WSDL operations are building blocks in WSCI Actions. WSCI Actions operate on WSDL operations.

Four types of WSDL operations

One-way: can receive a message but will not return a response

Request-response: can receive a message and will return a response

Solicit-response: can send a message and will wait for a response

Notification: can send a message and will not wait for a response

Friday, August 20, 2004

XML Programming Language

XPL eXtensible Programming Language
http://www.vbxml.com/xpl/spec_draft.asp

o:XML Programming Language
http://www.o-xml.org/spec/langspec.html

Tuesday, August 17, 2004

paper "Grid Web Services and Application Factories"

This paper proposes a factory service to build distributed applications. A distributed application consists of many XCAT components. A running instance of an XCAT component is a web service with uses-port and provides-port. This paper defines an XML language to describe the connections between components. Compared with WSFL/BPEL, this CCA based approach gets rid of the central flow engine. So, there is no need of extra effort to describe information exchange between components.
This approach can be used complementarily with BPEL. The description of connections between components can work as an annotation to service partners in BPEL. Doing so will get benefit from both of them.

XML programming languages

1. with/without XML syntax
Is it a language with everything in XML or just to manipulate only XML data? For example, in CDL/BPEL/XLANG/WSFL, everything is XML, including data and the language itself. While in XQuery and XL languages (http://xl.in.tum.de/), the language syntax is independent of XML.

2. Composition/specification of Web Services
Is it a language to compose or specify Web Services? The former one is programming in large and the latter programming in small. In BPEL, there is a trend to provide both functionalities by introducing Java or C# code snippet.

3. Imperative/declarative programming
Imperative programming gives a list of instructions to execute in a particular order. Declarative programming describes a set of conditions and lets the computer figure out how to satisfy them. That is, imperative programming specifies “how” whereas declarative programming describes what is going to be done without specifying “how”. The annotation mechanism is a way to use declarative and imperative programming together. Annotation is used to associate declarative information (metadata) with imperative program elements such as classes, methods, fields, parameters, local variables and packages. Annotation is supported in JDK 1.5 (http://www.onjava.com/pub/a/onjava/2004/04/21/declarative.html) and .NET Framework.



Monday, August 09, 2004

Standard ML

Dynamic Linking

Papers of D. Duggan by Topic
http://guinness.cs.stevens-tech.edu/~dduggan/Public/Papers/

D. Duggan. Type-Safe Linking With Recursive DLLs and Shared Libraries (PDF). ACM Transactions on Programming Languages and Systems, 24, 6, 711--804, November 2002.

Wednesday, August 04, 2004

Another BPEL remarks

The link is at

http://www.ebpml.org/bpel4ws.htm

Some arguments are quoted here. Words in blue are my own explanation.

1. WSDL foundation for a process definition is not the most natural. In the peer-to-peer interaction scenario, it is rarely that two arbitrary APIs designed in complete isolation could operate in harmony. WSDL originally provides with RPC APIs; but now it is more messaging oriented.

2. Web services model is not general enough to represent any arbitrary data exchange, especially between business partners. BPEL needs to define extra activities to exchange data between business partners.

3. Control Flow
No reference to a process composition and the notion of subprocess. A process instance is created in the activities that receive messages such as receive and pick activities. Instances communicate with each other by global variables.

4.Message Flow
Lack of timeout on an invoke activity.
Receive, reply and invoke activities need a "partner" attribute. This leads a process to be only able to talk with the outside world. A BPEL process can not describe the message exchange between any two internal components. For example, one part of a process may need to call other part. Why a process may consist of two or more components?

5. Data Flow
No transformation on the data. Why not simply allow a
element to do it? BPEL depends on XPATH to manipulate XML data. XLST could be used to accomplish transformation.

6. Transaction Flow
Using UNDO

To be continued...

Tuesday, August 03, 2004

BPEL Specification and Tutorials

Specification WS-BPEL v1.1
http://www-106.ibm.com/developerworks/library/ws-bpel/

Oracle BPEL Process Manager
http://otn.oracle.com/products/ias/bpel/index.html
I already installed BPEL PM and tried the BPEL tutorials in this site.

The PI-calculus

The PI-Calculus is a theory of Mobile Processes.

It is the mathematic foundation of WS-CDL

http://move.to/mobility

My summary of BPEL